package com.ruoyi.statistic.service.impl;

import java.util.Date;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.statistic.domain.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.statistic.mapper.WDayReportStatMapper;
import com.ruoyi.statistic.service.IWDayReportStatService;

/**
 * 日统计表Service业务层处理
 * 
 * @author wzy
 * @date 2024-10-17 16:25:05
 */
@Service
public class WDayReportStatServiceImpl implements IWDayReportStatService 
{
    @Autowired
    private WDayReportStatMapper wDayReportStatMapper;

    /**
     * 查询日统计表
     * 
     * @param dayReportStatisticId 日统计表主键
     * @return 日统计表
     */
    @Override
    public WDayReportStat selectWDayReportStatByDayReportStatisticId(Long dayReportStatisticId)
    {
        return wDayReportStatMapper.selectWDayReportStatByDayReportStatisticId(dayReportStatisticId);
    }

    /**
     * 查询日统计表列表
     * 
     * @param wDayReportStat 日统计表
     * @return 日统计表
     */
    @Override
    public List<WDayReportStat> selectWDayReportStatList(WDayReportStat wDayReportStat)
    {
        return wDayReportStatMapper.selectWDayReportStatList(wDayReportStat);
    }

    /**
     * 新增日统计表
     * 
     * @param wDayReportStat 日统计表
     * @return 结果
     */
    @Override
    public int insertWDayReportStat(WDayReportStat wDayReportStat)
    {
        wDayReportStat.setCreateTime(DateUtils.getNowDate());
        return wDayReportStatMapper.insertWDayReportStat(wDayReportStat);
    }

    /**
     * 修改日统计表
     * 
     * @param wDayReportStat 日统计表
     * @return 结果
     */
    @Override
    public int updateWDayReportStat(WDayReportStat wDayReportStat)
    {
        wDayReportStat.setUpdateTime(DateUtils.getNowDate());
        return wDayReportStatMapper.updateWDayReportStat(wDayReportStat);
    }

    /**
     * 批量删除日统计表
     * 
     * @param dayReportStatisticIds 需要删除的日统计表主键
     * @return 结果
     */
    @Override
    public int deleteWDayReportStatByDayReportStatisticIds(Long[] dayReportStatisticIds)
    {
        return wDayReportStatMapper.deleteWDayReportStatByDayReportStatisticIds(dayReportStatisticIds);
    }

    /**
     * 删除日统计表信息
     * 
     * @param dayReportStatisticId 日统计表主键
     * @return 结果
     */
    @Override
    public int deleteWDayReportStatByDayReportStatisticId(Long dayReportStatisticId)
    {
        return wDayReportStatMapper.deleteWDayReportStatByDayReportStatisticId(dayReportStatisticId);
    }

    /**
     * 查询总入库页列表
     *
     * @param customerName 客户名称
     * @param beginDate 开始日期
     * @param endDate 结束日期
     * @param limit 条数限制
     * @return 总入库页集合
     */
    @Override
    public List<WEnterWarehouseSheet> selectWEnterWarehouseSheetListExt(String customerName, Date beginDate, Date endDate, int limit)
    {
        return wDayReportStatMapper.selectWEnterWarehouseSheetListExt(customerName, beginDate, endDate, limit);
    }

    /**
     * 查询总入库页列表
     *
     * @param customerName 客户名称
     * @param beginDate 开始日期
     * @param endDate 结束日期
     * @param limit 条数限制
     * @return 总入库页集合
     */
    @Override
    public List<WExitWarehouseSheet> selectWExitWarehouseSheetListExt(String customerName, Date beginDate, Date endDate, int limit)
    {
        return wDayReportStatMapper.selectWExitWarehouseSheetListExt(customerName, beginDate, endDate, limit);
    }

    /**
     * 查询货转入库页列表
     *
     * @param customerName 客户名称
     * @param beginDate 开始日期
     * @param endDate 结束日期
     * @param limit 条数限制
     * @return 总入库页集合
     */
    @Override
    public List<WTransferEnterSheet> selectWTransferEnterSheetListExt(String customerName, Date beginDate, Date endDate, int limit)
    {
        return wDayReportStatMapper.selectWTransferEnterSheetListExt(customerName, beginDate, endDate, limit);
    }

    /**
     * 查询货转出库页列表
     *
     * @param customerName 客户名称
     * @param beginDate 开始日期
     * @param endDate 结束日期
     * @param limit 条数限制
     * @return 总入库页集合
     */
    @Override
    public List<WTransferExitSheet> selectWTransferExitSheetListExt(String customerName, Date beginDate, Date endDate, int limit)
    {
        return wDayReportStatMapper.selectWTransferExitSheetListExt(customerName, beginDate, endDate, limit);
    }

    /**
     * 查询当前库存页列表
     *
     * @param customerName 客户名称
     * @param beginDate 开始日期
     * @param endDate 结束日期
     * @param limit 条数限制
     * @return 总入库页集合
     */
    @Override
    public List<WCurrentWarehouseSheet> selectWCurrentWarehouseSheetListExt(String customerName, Date beginDate, Date endDate, int limit)
    {
        return wDayReportStatMapper.selectWCurrentWarehouseSheetListExt(customerName, beginDate, endDate, limit);
    }

    /**
     * 查询日入库页列表
     *
     * @param customerName 客户名称
     * @param beginDate 开始日期
     * @param endDate 结束日期
     * @param limit 条数限制
     * @return 总入库页集合
     */
    @Override
    public List<WDayEnterWarehouseSheet> selectWDayEnterWarehouseSheetListExt(String customerName, Date beginDate, Date endDate, int limit)
    {
        return wDayReportStatMapper.selectWDayEnterWarehouseSheetListExt(customerName, beginDate, endDate, limit);
    }

    /**
     * 查询日入库页列表
     *
     * @param customerName 客户名称
     * @param beginDate 开始日期
     * @param endDate 结束日期
     * @param limit 条数限制
     * @return 总入库页集合
     */
    @Override
    public List<WDayExitWarehouseSheet> selectWDayExitWarehouseSheetListExt(String customerName, Date beginDate, Date endDate, int limit)
    {
        return wDayReportStatMapper.selectWDayExitWarehouseSheetListExt(customerName, beginDate, endDate, limit);
    }

    /**
     * 查询转入货主
     *
     * @param customerName 客户名称
     * @param transferIds 货转IDs
     * @param goodsId 货物ID
     * @return 转入货主
     */
    @Override
    public String selectGoodsTransferOrignCustomerExt(String customerName, String[] transferIds, long goodsId)
    {
        return wDayReportStatMapper.selectGoodsTransferOrignCustomerExt(customerName, transferIds, goodsId);
    }

}
